package csel.model.entity;

import csel.model.CharacterStatsHolder;
import csel.model.items.EquippableItem;
import csel.model.items.UseableItem;

/**
 * Defines some basic properties of a Character's Occupation, such
 * as skills, initial stats, and resistances.
 */
public interface Occupation extends java.io.Serializable
{
	CharacterStatsHolder getInitialStats();
	void setInitialResistances(CharacterStatsHolder cs);
	
	void accept(OccupationSkillGetterVisitor ov, int level, Character c);
	Inventory<EquippableItem> getStartingInventoryEquippable();
	Inventory<UseableItem> getStartingInventoryUseable();
	
	/* Subclasses should override toString()! */
}
